/****************************************************************************\
 * @file     main.c
 * @author   傅帅
 * @date     2019/12/25
 * @brief    main.c  []~(￣▽￣)~*
 *
 ******************************************************************************
 * @attent
 ****************************************************************************/
#include "FreeRTOS.h"
#include "task.h"
#include "BR_Common.h"

#define Start_Task_Prio 1
#define Start_Task_Stk 512

void Start_Task(void);
TaskHandle_t Start_Task_Handler;
int main(void)
{
    BR_vTemplateInit();             // 一些在开启任务调度前进行的初始化
    xTaskCreate(
        (TaskFunction_t) Start_Task,
        (char *)         "Start_Task",
        (uint16_t)       Start_Task_Stk,
        (void * )        NULL,
        (UBaseType_t)    Start_Task_Prio,
        (TaskHandle_t*)  &Start_Task_Handler);
    vTaskStartScheduler();          // 开启任务调度
}

void Start_Task(void)
{
    BR_vTemplateTaskInit();         // 一些需要开启任务调度后进行的初始化
    taskENTER_CRITICAL();
    BR_vTemplateTaskCreate();       // 模板任务创建
    BR_vMechanismTaskCreate();      // 机构相关任务创建
    vTaskDelete(Start_Task_Handler);
    taskEXIT_CRITICAL();
}
